// ==========================================================================
// gin-sns自动生成控制器相关代码，只生成一次，按需修改,再次生成不会覆盖.
// date：2021-02-21 13:45:54 +0800 CST
// path: app/controller/module/entitytag_api.go
// author：jon
// ==========================================================================
package module

import (
	"gin-sns/app/ginframe/response"
	"gin-sns/app/model"
	entitytagModel "gin-sns/app/model/module/entitytag"
	"gin-sns/app/service/module"

	"github.com/gin-gonic/gin"
	//"gin-sns/app/ginframe/utils/gconv"
)

var EntitytagApi = newEntitytagApi()

func newEntitytagApi() *entitytagApi {
	return &entitytagApi{}
}

type entitytagApi struct {
}

//列表分页数据
func (c *entitytagApi) ListAjax(ctx *gin.Context) {
	req := new(entitytagModel.SelectPageReq)
	//获取参数
	if err := ctx.ShouldBind(req); err != nil {
		response.ErrorResp(ctx).SetMsg(err.Error()).Log("entitytag管理", req).WriteJsonExit()
		return
	}
	rows := make([]entitytagModel.Entity, 0)
	result, page, err := module.EntitytagService.SelectListByPage(req)

	if err == nil && len(result) > 0 {
		rows = result
	}

	response.BuildTable(ctx, page.Total, rows).WriteJsonExit()
}

//新增页面保存
func (c *entitytagApi) AddSave(ctx *gin.Context) {
	req := new(entitytagModel.AddReq)
	//获取参数
	if err := ctx.ShouldBind(req); err != nil {
		response.ErrorResp(ctx).SetBtype(model.Buniss_Add).SetMsg(err.Error()).Log("标签新增数据", req).WriteJsonExit()
		return
	}

	id, err := module.EntitytagService.AddSave(req, ctx)

	if err != nil || id <= 0 {
		response.ErrorResp(ctx).SetBtype(model.Buniss_Add).Log("标签新增数据", req).WriteJsonExit()
		return
	}
	response.SucessResp(ctx).SetData(id).Log("标签新增数据", req).WriteJsonExit()
}

//修改页面保存
func (c *entitytagApi) EditSave(ctx *gin.Context) {
	req := new(entitytagModel.EditReq)
	//获取参数
	if err := ctx.ShouldBind(req); err != nil {
		response.ErrorResp(ctx).SetBtype(model.Buniss_Edit).SetMsg(err.Error()).Log("标签修改数据", req).WriteJsonExit()
		return
	}

	rs, err := module.EntitytagService.EditSave(req, ctx)

	if err != nil || rs <= 0 {
		response.ErrorResp(ctx).SetBtype(model.Buniss_Edit).Log("标签修改数据", req).WriteJsonExit()
		return
	}
	response.SucessResp(ctx).SetBtype(model.Buniss_Edit).Log("标签修改数据", req).WriteJsonExit()
}

//删除数据
func (c *entitytagApi) Remove(ctx *gin.Context) {
	req := new(model.RemoveReq)
	//获取参数
	if err := ctx.ShouldBind(req); err != nil {
		response.ErrorResp(ctx).SetBtype(model.Buniss_Del).SetMsg(err.Error()).Log("标签删除数据", req).WriteJsonExit()
		return
	}

	rs := module.EntitytagService.DeleteRecordByIds(req.Ids)

	if rs > 0 {
		response.SucessResp(ctx).SetBtype(model.Buniss_Del).Log("标签删除数据", req).WriteJsonExit()
	} else {
		response.ErrorResp(ctx).SetBtype(model.Buniss_Del).Log("标签删除数据", req).WriteJsonExit()
	}
}
